package projeto.model;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Musica {
	private String titulo;
	private String album;
	private String artista;
	private String ano;
	private String genero;
	private String localArmazenado;
	private List<Integer> estrelas;
		

	public Musica(String titulo,String album, String artista, String genero, String ano, String localArmazenado){
		this.titulo = titulo;
		this.album = album;
		this.artista = artista;
		this.genero = genero;
		this.ano = ano;
		this.localArmazenado = localArmazenado;
		this.estrelas = new ArrayList<Integer>();
				
	}
	
	public String getAno() {
		return ano;
	}

	public void setAno(String ano) {
		this.ano = ano;
	}

	public String getLocalArmazenado() {
		return localArmazenado;
	}

	public void setLocalArmazenado(String localArmazenado) {
		this.localArmazenado = localArmazenado;
	}

	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}

	public String getTitulo() {
		return titulo;
	}

	public String getGenero() {
		return genero;
	}

	public void setGenero(String genero) {
		this.genero = genero;
	}

	public String getArtista() {
		return artista;
	}

	public void setArtista(String artista) {
		this.artista = artista;
	}

	public String getAlbum() {
		return album;
	}

	public void setAlbum(String album) {
		this.album = album;
	}
	public int getEstrelas() {
		if (this.estrelas.size() == 0){
			return 0;
		}
		int soma = soma(this.estrelas);
		int numDeAvaliacoes = getNumeroDeAvaliadores();
		return soma/numDeAvaliacoes;
		
	}
	
	private Integer soma(List<Integer> lista){
		Iterator <Integer> iterador = lista.iterator();
		int soma = 0;
		while (iterador.hasNext()){
			soma += iterador.next();
		}
		return soma;
	}

	public void avaliarEmEstrelas(int nota) throws Exception {
		if (nota > 5 || nota < 0){
			throw new Exception("Somente é aceito o conceito de 0 a 5");
		}
		this.estrelas.add(nota);
	}
	
	public String reproduzMusica(){
		return "Reproduzindo a musica " + this.titulo;
	}

	public int getNumeroDeAvaliadores() {
		return this.estrelas.size();
	}
	
	
		
}

